<html>
	<head>
		<meta charset=utf-8>
		<title>My first three.js app</title>
		<style>
			* { margin: 0; padding: 0}
		</style>
	</head>
	<body>           
            <script src="../js/three.js"></script>
		<script>
            /*
            *创建场景对象
            */ 
            let scene = new THREE.Scene();
            /*
            *创建网格模型
            */
            // 立方体
            let box = new THREE.BoxGeometry(50, 50, 50); // 创建一个立方体几何对象，长宽高均为50
            let material1 = new THREE.MeshLambertMaterial({color:0x0000ff}); // 材质对象
            let mesh1 = new THREE.Mesh(box, material1); // 网格模型对象
            mesh1.translateX(-150);//沿着x轴负方向平移距离150
            scene.add(mesh1); // 网格模型添加到场景中

            // 球体
            let ball = new THREE.SphereGeometry(30, 40, 40); // 半径60，细分数40
            let material2 = new THREE.MeshLambertMaterial({color:0x0000ff}); // 材质对象
            let mesh2 = new THREE.Mesh(ball, material2); // 网格模型对象
            mesh2.translateX(-70);//沿着x轴负方向平移距离70
            scene.add(mesh2); // 网格模型添加到场景中

            // 圆台
            //圆台(顶部半径20，底部半径40，高度100，圆周细分数40)
            let yuantai=new THREE.CylinderGeometry(20,40,100,40);
            let material3 = new THREE.MeshLambertMaterial({color:0x0000ff}); // 材质对象
            let mesh3 = new THREE.Mesh(yuantai, material3); // 网格模型对象
            mesh3.translateX(20);//沿着x轴负方向平移距离70
            mesh3.translateY(30);//沿着x轴负方向平移距离70
            scene.add(mesh3); // 网格模型添加到场景中

            //圆柱(顶部、底部半径均为20，高度100，圆周细分数40)
            let yuanzhu=new THREE.CylinderGeometry(20,20,100,40);
            let material4 = new THREE.MeshLambertMaterial({color:0x0000ff}); // 材质对象
            let mesh4 = new THREE.Mesh(yuanzhu, material4); // 网格模型对象
            mesh4.translateX(100);//沿着x轴负方向平移距离70
            mesh4.translateY(30);//沿着x轴负方向平移距离70
            scene.add(mesh4); // 网格模型添加到场景中
            /**
            * 光源设置
            */
            // 点光源
            let point = new THREE.PointLight(0xffffff); // 0xffffff 定义光照强度
            point.position.set(400, 200, 300); // 点光源位置
            scene.add(point); // 点光源添加到场景中
            // 环境光
            let ambient = new THREE.AmbientLight(0x444444);
            scene.add(ambient);
            
            /*
             *相机设置 
            */
            let width = window.innerWidth;
            let height = window.innerHeight;
            let k = width / height; // 窗口宽高比
            let s = 200; // 三维场景缩放系数,对正交相机有用
            let camera = new THREE.OrthographicCamera (-s*k,s*k, s,-s,1,1000); // 正交相机，参数为左边偏移（偏移是相对于相机中心位置，不是坐标）
                                                                              // ，右偏移，上偏移，下偏移，近平面距离、远平面距离
            
            //let camera = new THREE.PerspectiveCamera (45, k, 1, 1000); //视角、宽高比、近平面距离、远平面距离
            camera.position.set(50, 20, 100); // 设置相机位置
            camera.lookAt(scene.position); // 设置相机方向（指向的场景对象）

            /*
            * 创建渲染器对象
            */
            let renderer = new THREE.WebGLRenderer({
                antialias:true,  //是否开启反锯齿
            });
            renderer.setSize(width, height);
            renderer.setClearColor(0xb9d3ff,1);//设置背景颜色
            document.body.appendChild( renderer.domElement );// body元素中插入canvas对象
            renderer.render(scene,camera);// 执行渲染操作
		</script>
	</body>
</html>